package myListener;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import java.awt.event.MouseMotionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import myWindows.JMyVentana;

public class JTestMouse extends JMyVentana {
    public JTestMouse() {
        InitGUI();
    }
    
    private JPanel panel;
    private JLabel etiqueta;
    
    public void InitGUI(){
        this.getContentPane().setLayout(new BorderLayout());
        
        panel = new JPanel();
        panel.setBackground(Color.WHITE);
        add(panel, BorderLayout.CENTER);
        
        etiqueta = new JLabel("Mouse fuera de la ventana");
        add(etiqueta, BorderLayout.SOUTH);
        
        panel.addMouseListener(new MouseListener(){
                    public void mouseClicked(MouseEvent e) {
                        int xPos = e.getX();
                        int yPos = e.getY();
                        String detalles = String.format("Se hizo click %d veces en [%d, %d]",
                            e.getClickCount(), xPos, yPos);
                            
                        if (e.isMetaDown())
                            detalles += " con el boton derecho del mouse";
                        else if (e.isAltDown())
                            detalles += " con el boton central del mouse";
                        else
                            detalles += " con el boton izquierdo del mouse";
                        
                        etiqueta.setText(detalles);
                    }

                    public void mousePressed(MouseEvent e) {
                        etiqueta.setText(String.format("Se hizo presiono en [%d,%d]",
                            e.getX(), e.getY()));
                    }

                    public void mouseReleased(MouseEvent e) {
                        etiqueta.setText(String.format("Se hizo libero en [%d,%d]",
                            e.getX(), e.getY()));
}

                    public void mouseEntered(MouseEvent e) {
                        etiqueta.setText(String.format("Mouse ingreso en [%d,%d]",
                            e.getX(), e.getY()));
                    }

                    public void mouseExited(MouseEvent e) {
                        etiqueta.setText("Mouse fuera de la ventana");
}
                });
        panel.addMouseMotionListener(new MouseMotionListener(){
                    public void mouseDragged(MouseEvent e) {
                        etiqueta.setText(String.format("Mouse se arrastro a [%d,%d]",
                            e.getX(), e.getY()));
                    }

                    public void mouseMoved(MouseEvent e) {
                        etiqueta.setText(String.format("Mouse se movio a [%d,%d]",
                            e.getX(), e.getY()));
                    }
                });
    }
    

    public static void main(String[] args) {
        JTestMouse obj = new JTestMouse();
        obj.setVisible(true);
    }
}
